// 获取DOM元素
const taskInput = document.getElementById('task-input');
const addTaskBtn = document.getElementById('add-task-btn');
const taskList = document.getElementById('task-list');
const emptyState = document.getElementById('empty-state');

// 任务数组
let tasks = [];

// 初始化应用
function initApp() {
    // 从localStorage加载任务
    loadTasks();
    // 渲染任务列表
    renderTasks();
    // 添加事件监听器
    setupEventListeners();
}

// 设置事件监听器
function setupEventListeners() {
    // 添加任务按钮点击事件
    addTaskBtn.addEventListener('click', addTask);
    
    // 输入框回车事件
    taskInput.addEventListener('keypress', function(e) {
        if (e.key === 'Enter') {
            addTask();
        }
    });
}

// 添加新任务
function addTask() {
    const taskText = taskInput.value.trim();
    
    if (taskText !== '') {
        const newTask = {
            id: Date.now(), // 使用时间戳作为唯一ID
            text: taskText,
            completed: false
        };
        
        tasks.push(newTask);
        saveTasks();
        renderTasks();
        
        // 清空输入框
        taskInput.value = '';
    }
}

// 渲染任务列表
function renderTasks() {
    // 清空任务列表
    taskList.innerHTML = '';
    
    // 检查是否有任务
    if (tasks.length === 0) {
        emptyState.style.display = 'block';
        return;
    }
    
    emptyState.style.display = 'none';
    
    // 添加每个任务到列表
    tasks.forEach(task => {
        const taskItem = document.createElement('li');
        taskItem.className = 'task-item';
        taskItem.setAttribute('data-id', task.id);
        
        const taskTextSpan = document.createElement('span');
        taskTextSpan.className = `task-text ${task.completed ? 'completed' : ''}`;
        taskTextSpan.textContent = task.text;
        
        // 标记任务完成/未完成的点击事件
        taskTextSpan.addEventListener('click', function() {
            toggleTaskStatus(task.id);
        });
        
        const deleteBtn = document.createElement('button');
        deleteBtn.className = 'delete-btn';
        deleteBtn.textContent = '删除';
        
        // 删除任务的点击事件
        deleteBtn.addEventListener('click', function() {
            deleteTask(task.id);
        });
        
        taskItem.appendChild(taskTextSpan);
        taskItem.appendChild(deleteBtn);
        taskList.appendChild(taskItem);
    });
}

// 切换任务完成状态
function toggleTaskStatus(taskId) {
    tasks = tasks.map(task => {
        if (task.id === taskId) {
            return { ...task, completed: !task.completed };
        }
        return task;
    });
    
    saveTasks();
    renderTasks();
}

// 删除任务
function deleteTask(taskId) {
    tasks = tasks.filter(task => task.id !== taskId);
    
    saveTasks();
    renderTasks();
}

// 保存任务到localStorage
function saveTasks() {
    localStorage.setItem('tasks', JSON.stringify(tasks));
}

// 从localStorage加载任务
function loadTasks() {
    const savedTasks = localStorage.getItem('tasks');
    if (savedTasks) {
        tasks = JSON.parse(savedTasks);
    }
}

// 启动应用
initApp();